package com.roc.util.constant;

import java.util.HashMap;

import org.apache.commons.lang3.StringUtils;

public enum AgentNumberType {
	AGENTNUMBER_CX("40101","1-"),// 创新
	AGENTNUMBER_HD("40102","2-"),// 华东
	AGENTNUMBER_HN("40103","3-"),// 华南
	AGENTNUMBER_XN("40104","4-"),// 西南
	AGENTNUMBER_HB("40105","5-"),// 华北
	AGENTNUMBER_HZ("40106","6-"),// 华中
	AGENTNUMBER_ZJFGS("40114","9-"),// 浙江分公司

    AGENTNUMBER_HD_ZY("555237309","12-"),// 华东（直营）
    AGENTNUMBER_HN_ZY("555238011","13-"),// 华南（直营）
    AGENTNUMBER_HZ_ZY("555238019","16-"),// 华中（直营）
    AGENTNUMBER_HB_ZY("555237671","15-"),// 华北（直营）
    AGENTNUMBER_XN_ZY("555233044","14-"),// 西南（直营）
    AGENTNUMBER_SH_ZY("555237651","18-"),// 上海（直营）
    AGENTNUMBER_ZJ_ZY("555238000","19-"),// 浙江（直营）
    AGENTNUMBER_CX_ZY("555232453","11-"),// 创新事业部（直营）
    AGENTNUMBER_SHFGS("40110","8-"),// 上海分公司
	
	AGENTNUMBER_JRSY("555307023","7-") ,// 金融事业部
	AGENTNUMBER_JRSY_ZY("555371406","17-") ;// 金融事业部（直营）

	private String code;
	private String name;
	
	private AgentNumberType(String code,String name){
		this.code=code;
		this.name=name;
	}
	
	public static AgentNumberType valueOfCode(String code) {
		if (StringUtils.isBlank(code)) {
			throw new IllegalArgumentException("AgentNumberType Status " + code
					+ " is blank");
		}
		for (AgentNumberType mt : values()) {
			if (mt.getCode().equals(code)) {
				return mt;
			}
		}
		throw new IllegalArgumentException("AgentNumberType Type " + code
				+ " is not exist");
	}
	
	/**
	 * 通过ID获取中文名称
	 * @param code
	 * @return
	 */
	public static String getName(String code) {
		if (StringUtils.isBlank(code)) {
			throw new IllegalArgumentException("AgentNumberType code " + code
					+ " is blank");
		}
		for (AgentNumberType mt : values()) {
			if (mt.getCode().equals(code)) {
				return mt.getName();
			}
		}
		throw new IllegalArgumentException("AgentNumberType code  " + code
				+ " is not exist");
	}
	
	/**
	 * 获取所有的枚举,以MAP返回
	 * @return
	 */
	public static HashMap<String,String> getAllEnumMap() {
		
		HashMap<String,String> map = new HashMap<String,String>();
		
		for (AgentNumberType mt : values()) {
			map.put(mt.getCode(), mt.getName());
		}
		
		return map;
		
	}
	
	public String getCode() {
		return code;
	}

	public String getName() {
		return name;
	}
	
}
